/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */
package org.jrestful.navigation.bean;

/**
 * @author samikc@jrestful.org
 *
 */
public class Navigation {

	private String label;
	private String tag;
	private String css;
	private String node;
	//private String labelTag = null;
	//private String labelCss = null;
	
	public String getStartHtml() {
		StringBuilder sb = new StringBuilder();
		sb.append("<").append(this.tag);
		if (this.css != null) {
			sb.append(" ").append("class='").append(this.css).append("'");
		}
		sb.append(">");
		if(!label.equals("")) {
			if (this.node != null) {
				sb.append("<a href='").append(this.node).append("' >");
			}
			
			sb.append(this.label);
			
			if (this.node != null) {
				sb.append("</a>");
			}
		}
		return sb.toString();
	}
	
	public Navigation(String label, String tag) {
		super();
		if ( label == null ) {
			throw new NullPointerException("label is undefined for this navigation which is not allowed.");
		}
		
		if (tag == null) {
			throw new NullPointerException("tag is undefined for this navigation which is not allowed.");
		}
		this.label = label;
		this.tag = tag;
	}

	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}

	public String getCss() {
		return css;
	}

	public void setCss(String css) {
		this.css = css;
	}

	public void setNode(String node) {
		this.node = node;
	}

	public String getEndHtml() {
		StringBuilder sb = new StringBuilder();
		sb.append("</").append(this.tag).append(">");
		return sb.toString();
	}
}
